package com.ruoyi.system.domain.excel;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;

import java.util.Date;

/**
 * 用户Excel导出实体类
 * 使用EasyExcel原生注解进行Excel导入导出
 *
 * @author share
 */
public class SysUserExcel {

    /** 用户ID */
    @ExcelProperty(value = "用户序号", index = 0)
    @ColumnWidth(10)
    private Long userId;

    /** 部门ID */
    @ExcelProperty(value = "部门编号", index = 1)
    @ColumnWidth(10)
    private Long deptId;

    /** 部门名称 */
    @ExcelProperty(value = "部门名称", index = 2)
    @ColumnWidth(20)
    private String deptName;

    /** 部门负责人 */
    @ExcelProperty(value = "部门负责人", index = 3)
    @ColumnWidth(15)
    private String leader;

    /** 用户账号 */
    @ExcelProperty(value = "用户账号", index = 4)
    @ColumnWidth(15)
    private String userName;

    /** 用户昵称 */
    @ExcelProperty(value = "用户昵称", index = 5)
    @ColumnWidth(15)
    private String nickName;

    /** 用户邮箱 */
    @ExcelProperty(value = "用户邮箱", index = 6)
    @ColumnWidth(25)
    private String email;

    /** 手机号码 */
    @ExcelProperty(value = "手机号码", index = 7)
    @ColumnWidth(15)
    private String phonenumber;

    /** 用户性别 */
    @ExcelProperty(value = "用户性别", index = 8)
    @ColumnWidth(10)
    private String sex;

    /** 帐号状态 */
    @ExcelProperty(value = "帐号状态", index = 9)
    @ColumnWidth(10)
    private String status;

    /** 最后登录IP */
    @ExcelProperty(value = "最后登录IP", index = 10)
    @ColumnWidth(15)
    private String loginIp;

    /** 最后登录时间 */
    @ExcelProperty(value = "最后登录时间", index = 11)
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @ColumnWidth(20)
    private Date loginDate;

    /** 创建时间 */
    @ExcelProperty(value = "创建时间", index = 12)
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @ColumnWidth(20)
    private Date createTime;

    /** 创建人 */
    @ExcelProperty(value = "创建人", index = 13)
    @ColumnWidth(15)
    private String createBy;

    /** 更新时间 */
    @ExcelProperty(value = "更新时间", index = 14)
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @ColumnWidth(20)
    private Date updateTime;

    /** 更新人 */
    @ExcelProperty(value = "更新人", index = 15)
    @ColumnWidth(15)
    private String updateBy;

    // getter and setter methods
    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getLeader() {
        return leader;
    }

    public void setLeader(String leader) {
        this.leader = leader;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPhonenumber() {
        return phonenumber;
    }

    public void setPhonenumber(String phonenumber) {
        this.phonenumber = phonenumber;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
      this.sex = sex;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
       this.status = status;
    }

    public String getLoginIp() {
        return loginIp;
    }

    public void setLoginIp(String loginIp) {
        this.loginIp = loginIp;
    }

    public Date getLoginDate() {
        return loginDate;
    }

    public void setLoginDate(Date loginDate) {
        this.loginDate = loginDate;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }
}